package sbt.metamodel;

/**
 * I provide a way for traces to notify me when they are modified.
 * @author pa
 *
 */
public interface TraceListener {
	/**
	 * Notify the listener that trace's metadata have changed.
	 * @param trace
	 */
	public void notifyMetadataChange(AbstractTrace trace);

	/**
	 * Notify the listener that trace's obsels have changed.
	 * @param trace
	 */
	public void notifyObselsChange(AbstractTrace trace, ChangeType type);
	
	public enum ChangeType {
		MONOTONIC_TEMPORAL, MONOTONIC_NONTEMP, NON_MONOTONIC
	}
}
